1. Field of the Invention
The present invention relates to a program, method, and apparatus for managing applications in remote servers, and more particularly to an application management program, method, and apparatus for remotely manipulating deployment of applications.
2. Description of the Related Art
Some server-based services require two or more server applications to work in a cooperative manner. For example, some services are provided through collaboration between web service functions, application service functions, and database service functions.
This description uses the following notation: A specific function name followed by the term “server” refers to a service function provided by application software programs running on a computer platform. The term “server computer,” on the other hand, refers to a computer that executes application software programs to provide services.
In a system where server applications are coordinated in a multi-layered structure, every processing request from clients goes to a web server. The web server delegates specific tasks for that request to an application server. If the required tasks include database access, then the application server interacts with the database server to retrieve necessary data.
In such a multi-layered system, each server application can be deployed on a plurality of server computers according to the roles that they are supposed to play. For example, a web server and an application server may be deployed on different server computers. Running server applications on separate server computers will make the system more flexible since the workloads of server application functions can be distributed over multiple computers.
Distributing applications on a plurality of server computers, however, would increase the burden of their management. Several researchers have therefore proposed a technique to automate the task of updating resources at lower-level devices by sending replacement resources and replacement job streams from upper-level devices to lower-level devices (see, for example, Japanese Patent Application Publication No. 3-238529).
To deploy applications for user service, it is necessary to synchronize the timing of their installation in multiple server computers. However, conventional deployment techniques require the applications to be set up at each individual server computer. Oversight or other human errors can happen during this process, leading to a lack of synchronism in application deployment across server computers and resulting in some problems as will be discussed below.
More specifically, multi-layered systems require a plurality of applications for each specific service function to maintain consistency among themselves. The deployment of interrelated applications has therefore to be done all at once; partial update of applications in a multi-layered system could introduce inconsistency between functions.
Also in the case of implementing a certain function as parallel processes on a plurality of server computers, it has to be ensured that every individual server computer involved in that function can undergo automatic deployment and automatic update of applications. That is, the load-distributed parallel processing system is supposed to offer the same processing service, no matter which server computer actually works for that service. If some server computers missed an update of applications, their behavior would be inconsistent with that of the other server computers.
As can be seen from the above, the conventional multi-layered parallel processing system controls deployment of applications on an individual server computer basis, where an oversight or other human errors can easily occur in giving instructions for application deployment. For this reason, the conventional system is likely to encounter the problem of inconsistent application processing.